

package com.hazelcast.internal.metrics.impl;

import com.hazelcast.instance.LocalInstanceStats;
import com.hazelcast.internal.metrics.MetricDescriptor;
import com.hazelcast.internal.metrics.MetricsCollectionContext;

import java.util.Map;

import static com.hazelcast.internal.metrics.MetricDescriptorConstants.GENERAL_DISCRIMINATOR_NAME;

public final class ProviderHelper {
    private ProviderHelper() {
    }

    public static void provide(MetricDescriptor descriptor, MetricsCollectionContext context, String prefix, Map<String, ? extends LocalInstanceStats> stats) {
        if (stats == null) {
            return;
        }

        for (Map.Entry<String, ? extends LocalInstanceStats> entry : stats.entrySet()) {
            String name = entry.getKey();
            LocalInstanceStats localStats = entry.getValue();

            MetricDescriptor dsDescriptor = descriptor.copy().withPrefix(prefix).withDiscriminator(GENERAL_DISCRIMINATOR_NAME, name);
            context.collect(dsDescriptor, localStats);
        }
    }
}
